layui.use(['table', 'jquery', 'layer'], function(){
        let table = layui.table;
        let $ = layui.jquery;
        let layer = layui.layer;
        let Up_id = null;
        let QR_ID = null;
        let uuid = null;
        let timerId = null; // 定时器ID
        let XF_ZT_QrCode_ID = 1; // 控制定时器停止的变量
        var paymsg = '';
        
		window.Get_Qr = function (obj) {
		    $.ajax({
    			data: {id:obj.data.id},
    			url: "/user/ajax/Get_Qr",
    			dataType: 'json',
    			type: 'post',
    			success: function(res) {
    				if (res.code == 200) {
    					window.showQrCodePopup(res);
    				} else {
    					layer.msg(res.msg, {
    						icon: 2,
    						time: 1000
    					});
    				}
    			},
    			error:function(){
    			    layer.msg("服务器错误！", {
                        icon: 2,
                        time: 1000
                    });
    			}
    		});
            
        };
        window.getTypeName = function (type) {
            if (type === 'alipay') {
                return '支付宝';
            } else if (type === 'qqpay') {
                return 'QQ';
            } else {
                return '微信';
            }
        };
        window.getScanInstructions = function (type , jixin = null) {
            if (type === 'alipay') {
                return '"支付宝"手机摄像头扫一扫,<small style="color:red; font-size:16px">并关闭支付宝自动转入余额宝,否则到账不回调</small>';
            } else if (type === 'qqpay') {
                return '"QQ"截图发送给QQ好友并识别图片登陆或手机摄像头扫一扫';
            } else if(type === 'wxpay'){
                return `"微信"手机摄像头扫一扫,<small style="color:red; font-size:16px">登录选择 ${jixin} , 如果以上没有 ${jixin}则选择以上都不是`;
            }
        }
        window.Get_Login_QrCode = function (layero){
            $.ajax({
                url: '/user/ajax/Get_Login_QrCode', 
                method: 'POST',
                dataType: 'json',
                data: {
                  id: Up_id
                },
                success: function(res) {
                   if (res.code == 200) {
                       var jixin = res.jixin || null;
                       var is_type = getScanInstructions(res.type,jixin);
                       QR_ID = res.id;
                       if(res.uuid) uuid = res.uuid;
                         $("#Up_LoginQrcode_msg",layero).html('<center>请您使用' + is_type + '->"2分钟内"扫以下码登录,扫码之后请返回此页面等待1分钟,如超过1分钟则系统登录失败,请您再次重试</center>'); //输出提示
                         $("#Up_LoginQrcode",layero).html('<center><img align="center" id="qrcodeimg" alt="加载中..." src="' + res.qr_url + '" title="扫码登录" width="200" height="200" style=" position: relative; border: green solid 1px;"></center>'); //输出登录二维码
                        //调用 循环
                        startRequest(layero);
                   }else{
                       layer.msg(res.msg,{
                            icon: 2,
                            time: 1000
                        },function(){
                            XF_ZT_QrCode_ID = 1;
                            window.location.reload();
                        });
                   }
                },
                error: function(err) {
                    layer.msg('服务器错误！',{
                        icon: 2,
                        time: 1000
                    },function(){
                        window.location.reload();
                    });
                   
                }
            });
        };
        window.verifycode = function(layero){
            layer.open({
                type: 1,
                title: '请输入验证码',
                content: '<div style="padding: 20px;"><input type="text" id="captcha" class="layui-input" placeholder="请输入验证码" style="width: 100%;"></div>',
                btn: ['提交', '取消'],
                yes: function (index, layero) {
                    var captcha = $('#captcha').val();
                    if (!captcha) {
                        layer.msg('验证码不能为空！', { icon: 2, time: 1000 });
                        return;
                    }

                    // 提交验证码到后端接口
                    $.ajax({
                        url: '/user/ajax/Submit_Captcha',  // 这个是你用来提交验证码的后端接口
                        method: 'POST',
                        dataType: 'json',
                        data: {
                            id: Up_id,
                            qr_id: QR_ID,
                            uuid: uuid,
                            captcha: captcha
                        },
                        success: function (captchaRes) {
                            if (captchaRes.code == 200) {
                                layer.msg('验证码正确，正在处理...', { icon: 1, time: 1500 },function(){
                                    layer.close(index);// 关闭验证码弹框
                                    //继续循环
                                    XF_ZT_QrCode_ID = 0;
                                    startRequest(layero);
                                    
                                });
                                 
                            } else {
                                layer.msg(captchaRes.msg, { icon: 2, time: 1000 },function(){
                                    stopRequest();//验证失败彻底停止循环
                                    window.location.reload();
                                });
                            }
                        },
                        error: function () {
                            layer.msg('验证码提交失败！', { icon: 2, time: 1000 },function(){
                                stopRequest();
                                window.location.reload();
                            });
                        }
                    });
                },
                btn2: function (index, layero) {
                    layer.close(index); // 取消时关闭弹窗
                    stopRequest();
                    window.location.reload();
                }
            });
        };
        // 定时请求函数
        window.fetchData = function (layero) {
           if (XF_ZT_QrCode_ID !== 0 ) {
              stopRequest();
            return;
          }
           $.ajax({
                url: '/user/ajax/Get_Login_Cookie', 
                method: 'POST',
                dataType: 'json',
                data: {
                  id: Up_id,
                  qr_id:QR_ID,
                  uuid:uuid
                },
                success: function(res) {
                   if(res.ZT_ID  === 1){
                        XF_ZT_QrCode_ID = res.ZT_ID
                   }
                   if (res.code == 0) {//获取到了cookie
                        Up_Qr(res.cookie);
                   }else if(res.code == 2){//已扫码
                        $("#Up_LoginQrcode_msg",layero).html('<center>扫码成功，请在手机上点击确认登录...</center>'); //输出提示
                        $("#Up_LoginQrcode",layero).html('<center><img align="center" id="qrcodeimg" alt="加载中..." src="/assets/img/QR-OK.png" title="扫码成功" width="200" height="200" style=" position: relative; border: green solid 1px;"></center>'); //输出登录二维码
                   }else if(res.code == 8){//QQ专用
                       $("#Up_LoginQrcode_msg",layero).html('<center>已登录正在获取cookie中，请稍后...</center>'); //输出提示
                        $("#Up_LoginQrcode",layero).html('<center><img align="center" id="qrcodeimg" alt="加载中..." src="/assets/img/QR-OK.png" title="扫码成功" width="200" height="200" style=" position: relative; border: green solid 1px;"></center>'); //输出登录二维码
                   } else if(res.code == -3){//微信ipad 验证码专用
                       //临时停一下循环 
                       XF_ZT_QrCode_ID = 1;
                       verifycode(layero);
                   }
                   else if(res.code ==-2 || res.code == -1){//错误提示
                       layer.msg(res.msg,{
                            icon: 2,
                            time: 1000
                        },function(){
                            stopRequest();
                            window.location.reload();
                        });
                   }else{}//其他状态 
                },
                error: function(err) {
                    layer.msg('服务器错误！', {
                        icon: 2,
                        time: 3000
                    }, function() {
                         stopRequest();
                        window.location.reload();
                    });
                }
            });
        };
        window.Up_Qr = function(cookie){
            var ii = layer.load(5, {
        		shade: [0.1, '#fff']
        	});
        	$.ajax({
        	    type: "POST",
        	    url: "/user/ajax/Up_Qrcookie",
        	    data: {
        	        id:Up_id,
        			cookie:cookie
        	    },
        	    dataType: 'json',
        	    timeout: 15000,
        	    success: function(data) {
        	        layer.close(ii);
        	        if(data.code == 200){
        	            layer.msg(data.msg, {
                            icon: 1,
                            time: 2000
                            }, function() {
                                window.location.reload();
                            });
        	        }else{
        	            layer.msg(data.msg, {
                                icon: 2,
                                time: 3000
                            }, function() {
                                window.location.reload();
                            });
        	        }
        	    },
        	    error: function(data) {
        	        layer.close(ii);
        	        layer.msg('服务器错误！', {
                            icon: 2,
                            time: 3000
                        }, function() {
                            window.location.reload();
                        });
        	    }
        	});
        }
        // 开始定时请求
        window.startRequest = function (layero) {
          var interval =  3* 1000; // 获取间隔时间（毫秒）
    
          if (isNaN(interval) || interval <= 0) {
                layer.msg('请输入有效的请求间隔时间');
              return;
           }
    
          timerId = setInterval(()=>fetchData(layero), interval);
          fetchData(layero);  // 立即执行一次请求
        }
        window.stopRequest = function () {
            if (timerId) {
                clearInterval(timerId);
                timerId = null;
            }
    
        }
		window.Popupcontent = function(layero, res) {
            $("#Up_LoginQrcode_msg", layero).html('<center>正在提交获取二维码请求...</center>');
            $("#Up_id", layero).val(res.id);
            Up_id = res.id;
            if (res.type == 'wxpay' && res.hook_type == 0) {
                  
                  // 使用 Pear Layui 的按钮样式
                  paymsg += '<button class="layui-btn layui-btn-sm" style="margin-top:10px;"><img width="20" src="/assets/icon/wxpay.ico" class="logo">[' + res.data.wx_name + '] 账号->' + res.data.wx_user + '</button>';
            
                  // 拼接提示信息
                  var msg = paymsg + '<br>请添加以上任意一个微信为好友,并发送店员邀请小程序(搜索[收款小账本]->收款店员->添加店员->邀请微信朋友成为店员->发送给当前微信号即可)';
                  $("#Up_LoginQrcode_msg", layero).html(msg);
            
            
                  var qrCodeInfo = '<small style="color:red; font-size:16px">在邀请后请等待自动同意店员 如长时间没绑定 请联系客服，请注意 绑定后不要解除店员否则不回调</small><br>';
            	  qrCodeInfo +=  '请注意看以下的操作<br>';
            	  qrCodeInfo += '发送之后一段时间未绑定,请联系客服进行审核<br>';
                  qrCodeInfo +=  '如果你的微信提示绑定成功了,刷新平台cookie还没更新,请解绑店员再发发送绑定邀请<br>';
                  qrCodeInfo +=  '如果在10分钟内未绑定,想要再次绑定的时候必须点击“更新”才能再次发送店员绑定,否则绑定成功了<br>';
                  qrCodeInfo +=  '成功登录的微信请不要随意更换昵称,如果更换昵称,需要删除二维码重新登录绑定!';
                  $("#Up_LoginQrcode",layero).html(qrCodeInfo);
                  
            }else{
                XF_ZT_QrCode_ID = 0;
            }
            Get_Login_QrCode(layero);
        };
		
});